<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Style-Type" content="text/css">
<link rel="up" title="Petit FatFs" href="../00index_p.html">
<link rel="stylesheet" href="../css_e.css" type="text/css" media="screen" title="ELM Default">
<link rel="stylesheet" href="../css_p.css" type="text/css" media="screen" title="ELM Default">
<title>Petit FatFs - pf_open</title>
</head>

<body>

<div class="para">
<h2>pf_open</h2>
<p>The pf_open function opens an existing file.</p>
<pre>
FRESULT pf_open (
  const char* <span class="arg">path</span>  <span class="c">/* [IN] Pointer to the file neme */</span>
);
</pre>
</div>

<div class="para">
<h4>Parameters</h4>
<dl class="par">
<dt>path</dt>
<dd>Pointer to a null-terminated string that specifies the <a href="filename.html">file name</a> to open.</dd>
</dl>
</div>


<div class="para">
<h4>Return Values</h4>
<dl class="ret">
<dt>FR_OK (0)</dt>
<dd>The function succeeded.</dd>
<dt>FR_NO_FILE</dt>
<dd>Could not find the file or path.</dd>
<dt>FR_DISK_ERR</dt>
<dd>The function failed due to a hard error in the disk function, a wrong FAT structure or an internal error.</dd>
<dt>FR_NOT_ENABLED</dt>
<dd>The volume has not been mounted.</dd>
</dl>
</div>


<div class="para">
<h4>Description</h4>
<p>The file must be opend prior to use <tt>pf_read()</tt> and <tt>pf_lseek()</tt> function. The open file is valid until next open.</p>
</div>


<div class="para">
<h4>Example</h4>
<pre>
int main (void)
{
    FATFS fs;          <span class="c">/* Work area (file system object) for the volume */</span>
    BYTE buff[16];     <span class="c">/* File read buffer */</span>
    UINT br;           <span class="c">/* File read count */</span>
    FRESULT res;       <span class="c">/* Petit FatFs function common result code */</span>


    <span class="c">/* Mount the volume */</span>
    pf_mount(&amp;fs);
    if (res) die(res);

    <span class="c">/* Open a file */</span>
    res = pf_open("srcfile.dat");
    if (res) die(res);

    <span class="c">/* Read data to the memory */</span>
    res = pf_read(buff, 16, &amp;br);    <span class="c">/* Read data to the buff[] */</span>
    if (res) die(res);               <span class="c">/* Check error */</span>
    if (br != 16) die(255);          <span class="c">/* Check EOF */</span>

    ....

    <span class="c">/* Forward data to the outgoing stream */</span>
    do
        res = pf_read(0, 512, &amp;br);  <span class="c">/* Send data to the stream */</span>
    while (res || br != 512);        <span class="c">/* Break on error or eof */</span>

    ....

}
</pre>
</div>

<div class="para">
<h4>QuickInfo</h4>
<p>Always available.</p>
</div>

<div class="para">
<h4>References</h4>
<p><tt><a href="read.html">pf_read</a>, <a href="sfatfs.html">FATFS</a></tt></p>
</div>

<p class="foot"><a href="../00index_p.html">Return</a></p>
</body>
</html>
